<schema targetNamespace="http://www.opengis.net/gml/3.3/lro" xmlns:gmllr="http://www.opengis.net/gml/3.3/lr" xmlns:gmllro="http://www.opengis.net/gml/3.3/lro" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" elementFormDefault="qualified" version="3.3.0">
  <annotation>
    <documentation>linearRefOffset.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.</documentation>
  </annotation>
  <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="../../gml/3.2.1/gml.xsd" />
  <import namespace="http://www.opengis.net/gml/3.3/lr" schemaLocation="../../gml/3.3/linearRef.xsd" />
  <complexType name="LRMWithOffsetType">
    <complexContent>
      <extension base="gmllr:LinearReferencingMethodType">
        <sequence>
          <element name="offsetUnits" type="gml:UomIdentifier" />
          <element name="positiveLateralOffsetDirection" type="gmllro:LateralOffsetDirectionType" default="right" minOccurs="0" />
          <element name="positiveVerticalOffsetDirection" type="gmllro:VerticalOffsetDirectionType" default="up" minOccurs="0" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="LRMWithOffset" type="gmllro:LRMWithOffsetType" substitutionGroup="gmllr:LinearReferencingMethod" />
  <complexType name="LRMWithOffsetPropertyType">
    <sequence minOccurs="0">
      <element ref="gmllro:LRMWithOffset" />
    </sequence>
    <attributeGroup ref="gml:AssociationAttributeGroup" />
  </complexType>
  <complexType name="LateralOffsetDistanceExpressionType">
    <complexContent>
      <extension base="gmllr:DistanceExpressionType">
        <sequence>
          <element name="lateralOffsetExpression" type="gmllro:LateralOffsetExpressionType" minOccurs="0" />
          <element name="verticalOffsetExpression" type="gmllro:VerticalOffsetExpressionType" minOccurs="0" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="LateralOffsetDistanceExpression" type="gmllro:LateralOffsetDistanceExpressionType" substitutionGroup="gmllr:DistanceExpression" />
  <complexType name="LateralOffsetExpressionType">
    <simpleContent>
      <extension base="double">
        <attribute name="uom" type="gml:UomIdentifier" />
        <attribute name="lateralOffsetReferent" type="string" />
        <attribute name="featureGeometry" type="anyURI">
          <annotation>
            <appinfo>
              <gml:targetElement>gmllr:AbstractGeometry</gml:targetElement>
            </appinfo>
          </annotation>
        </attribute>
      </extension>
    </simpleContent>
  </complexType>
  <complexType name="VerticalOffsetExpressionType">
    <simpleContent>
      <extension base="double">
        <attribute name="uom" type="gml:UomIdentifier" />
        <attribute name="verticalOffsetReferent" type="string" />
        <attribute name="featureGeometry" type="anyURI">
          <annotation>
            <documentation>The featureGeometry attribute value should reference a Geometry object</documentation>
            <appinfo>
              <gml:targetElement>gmllr:AbstractGeometry</gml:targetElement>
            </appinfo>
          </annotation>
        </attribute>
      </extension>
    </simpleContent>
  </complexType>
  <simpleType name="LateralOffsetDirectionType">
    <restriction base="string">
      <enumeration value="left" />
      <enumeration value="right" />
    </restriction>
  </simpleType>
  <simpleType name="VerticalOffsetDirectionType">
    <restriction base="string">
      <enumeration value="up" />
      <enumeration value="down" />
    </restriction>
  </simpleType>
  <complexType name="LateralOffsetLinearSRSType">
    <complexContent>
      <extension base="gml:IdentifiedObjectType">
        <sequence>
          <element name="linearElement" type="gmllr:LinearElementPropertyType" />
          <element name="lrm" type="gmllro:LRMWithOffsetPropertyType" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <element name="LateralOffsetLinearSRS" type="gmllro:LateralOffsetLinearSRSType" substitutionGroup="gml:Definition" />
  <complexType name="LateralOffsetLinearSRSPropertyType">
    <sequence minOccurs="0">
      <element ref="gmllro:LateralOffsetLinearSRS" />
    </sequence>
    <attributeGroup ref="gml:AssociationAttributeGroup" />
  </complexType>
</schema>
